package com.jt.controller;


import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;


@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {

    @Autowired
    private FileService fileService;

    /**
     *
     * @param file MultipartFile:SpringMVC对外提供的接口，专门实现文件上传操作，
     *             默认的文件大小，最大1M，如果需要优化，则需要编辑配置类，重新定义大小
     *             优化：
     *                  1.防止文件重名
     *                  2.防止恶意程序，筛选jpg/png
     * @return SysResult
     */
    @PostMapping("/upload")
    public SysResult upload(MultipartFile file) throws IOException {
        /*//1.获取文件名称
        String fileName = file.getOriginalFilename();
        //2.准备文件上传的本地目录，绝对路径
        String fileDir = "E:/Pictures/";
        //3.判断目录是否存在
        File filePath = new File(fileDir);
        if (!filePath.exists()){
            //mkdirs()可以创建多级目录
            //mkdir()只创建一级目录
            filePath.mkdirs();
        }
        //4.准备输出的对象，文件的全路径"文件目录"/+"文件名称"
        String realFilePath= fileDir+fileName;
        File realFile = new File(realFilePath);
        //5.实现文件上传
        file.transferTo(realFile);
        return SysResult.success();*/

        ImageVO imageVO = fileService.upload(file);
        if (imageVO==null) {
            return SysResult.fail();
        }
        return SysResult.success(imageVO);
    }

    //实现文件的删除功能
    //URL: /file/deleteFile
    @DeleteMapping("/deleteFile")
    public SysResult fileRemove(String virtualPath){

        fileService.fileRemove(virtualPath);
        return SysResult.success();
    }


}
